package com.hdoit.apollo.logical.billing.service;

import java.util.List;

import com.hdoit.apollo.logical.billing.model.Billing;
import com.hdoit.apollo.logical.stock.model.OutStock;
import com.hdoit.apollo.logical.stock.model.OutStockShow;
import com.hdoit.apollo.logical.viewmodel.billing.BillingSearch;
import com.hdoit.apollo.logical.viewmodel.billing.BillingStat;
import com.hdoit.apollo.logical.viewmodel.stock.OutStockCollocationInfo;
import com.hdoit.apollo.logical.viewmodel.stock.ReturnCargoInfo;
import com.tennetcn.data.dao.base.ISuperService;
import com.tennetcn.data.message.PagerModel;

/**
 * @author      tancongzhu
 * @email       
 * @createtime  2018年04月02日 10:40:23
 * @comment
 */
public interface IBillingService extends ISuperService<Billing>{

	public boolean applyBilling(Billing billing, List<OutStockShow> outStockShows);

	public List<Billing> getBillingInfoByCargoId(String cargoId);

	public  boolean applyBillingReturn(Billing billing, OutStock outStock);
	
	public Billing getBillingByKey(String key);

	public List<Billing> getBillingInfoListByCustomerId(String customerId);

	public BillingStat getBillingStat(BillingSearch search);

	public boolean applyBillingAndOutStock(Billing billing, OutStockCollocationInfo outStockCollocationInfo);

	public boolean applyBillingAndReturnCargo(Billing billing, ReturnCargoInfo returnCargoInfo);

	public boolean closeBilling(Billing billing, String loginId, String loginName);

	public boolean applyBillingReturnCheck(Billing billing,OutStockCollocationInfo outStockCollocationInfo);

	public List<Billing> queryListMPForWeChat(BillingSearch search,PagerModel pagerModel);
}
